<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态组件</title>
    <script src="js/vue.js"></script>
</head>
<body>
    <div id="itany">
        <button @click="flag = 'my-hello'">显示hello组件</button>
        <button @click="flag = 'my-world'">显示world组件</button>

        <div>
            <!--使用keep-alive组件缓存非活动组件，可以保留状态，
                避免重新渲染，默认每次都会销毁非活动组件并重新创建-->
            <keep-alive>
                <component :is="flag"></component>
            </keep-alive>
        </div>
    </div>

    <script>
        var vm = new Vue({
            el : '#itany',
            data : {
                flag : 'my-hello'
            },
            components : {
                'my-hello' : {
                    template : '<h3>我是hello组件：{{x}}</h3>',
                    data : function () {
                        return {
                            x: Math.random()
                        }
                    }
                },
                'my-world' : {
                    template: '<h3>我是world组件：{{y}}</h3>',
                    data : function () {
                        return {
                            y : Math.random()
                        }
                    }
                }
            }
        });
    </script>
</body>
</html>